package cn.wp.ewallet.wallet.service;

import cn.wp.common.core.dto.WpResult;
import cn.wp.common.core.model.WpPage;
import cn.wp.ewallet.wallet.model.entity.UserOrderDo;
import cn.wp.ewallet.wallet.model.entity.UserPublishDo;

import java.math.BigDecimal;

public interface UserPublishService extends BaseService<UserPublishDo> {
    /**
     * 创建发布 上架
     *
     * @param userPublish
     */
    WpResult pub(UserPublishDo userPublish, String transPwd);


    /**
     * 1、用户手动下架，2、买或卖满额下架，3、系统下架
     * SHQC账户需要加上未售罄的余额
     *
     * @param publishId
     * @return
     */
    WpResult depub(String publishId);

    /**
     * 发布列表
     *
     * @param type
     * @return
     */
    WpResult pubList(Integer type, String userId, Integer pageNo, Integer pageSize);

    /**
     * 创建订单时冻结
     */
    void freeze(String id, BigDecimal num);

    /**
     * 订单完成时划款
     *
     * @param id
     * @param order
     */
    void finish(String id, UserOrderDo order);

    /**
     * 取消时退还而不是撤销，解冻
     *
     * @param id  标的ID
     * @param num
     */
    void back(String id, BigDecimal num);


    WpResult pubList(Integer type, String userId, WpPage wpPage);
}
